This application is related to the following co-pending and commonly-assigned patent applications, all of which are filed on the same date herewith, and all of which are incorporated herein by reference in their entirety:
xe2x80x9cSelecting Printing Attribute Values in a Network Printing System,xe2x80x9d by Scott D. Mastie and Arthur R. Roberts, application Ser. No. 09/143,281;
xe2x80x9cMultiple Insertion Point Queue to Order and Select Elements to be Processed,xe2x80x9d by Scott D. Mastie and Ming Xie, application Ser. No. 09/140,482; and
xe2x80x9cRule Based Selection Criteria For Controlling Print Job Distribution,xe2x80x9d by Scott D. Mastie and Ming Xie, application Ser. No. 09/140,613.
1. Field of the Invention
The present invention relates to a method and system for processing data files into print files ready to be printed and, specifically, to load balancing of processing tasks across processing operations.
2. Description of the Related Art
Network printing systems generally comprise an assemblage of different printers, client computers, servers, and other components connected over a network. A print job is assembled at a client computer and transmitted over the network to a server linked to a variety of printers. The printers may have different printing capabilities. Thus, for a given submitted print job, some printers in the network may not be able to process the print job. To route print jobs through a network printing system, International Business Machines Corporation (IBM) provides Printing Systems Manager (PSM) products that provide centralized and distributed management of a network printing system. The IBM PSM systems manage the flow of print jobs and insure that a print job is routed to a printer that can handle the job.
A print job is comprised of one or more electronically-stored files and the print attributes therefor. The print attributes inform the printer how to process the files. To assemble print jobs, prior art systems include software installed on the client computer that displays a graphical user interface (GUI). Using a mouse, keyboard, etc., the user selects from a menu of options displayed in the GUI the components and print attributes for a print job. The client computer, under control of the installed software, would then create an electronically-stored job ticket based on the information entered by the user.
Job tickets typically only define the print attributes for a single file. However, a document may be comprised of multiple files, each having one or more print attributes. A file submitted to the printer often includes printer instructions in a page description language (PDL) such as POST SCRIPT(trademark). POST SCRIPT is a trademark of Adobe Systems, Incorporated. The Post Script language is used by many printers and applications to provide the complex fonts, graphics, and image handling capabilities required by today""s applications. The Post Script language must be interpreted by a transform process in the printer or elsewhere in the network to produce a printed image file that is ready to be printed. Print image files are in a bit-mapped image format, also known as a raster image. A raster image processor (RIP) translates PDL files to a raster image or RIP version of the file. In the desktop publishing environment, it can take several hours to transform a large PDL print file to its RIP version.
The IBM AIX PRINT SERVICES FACILITY/6000 (PSF/6000) software system transforms Post Script files into an Advanced Function Presentation data stream (AFP data stream) for printing on printers attached to a machine implementing the PSF/6000 software. AIX is a registered trademark of IBM and PRINT SERVICES FACILITY is a trademark of IBM. The PSF/6000 software uses the PS2AFP transform command to transform Post Script and other file formats into an AFP data stream file without submitting it immediately to the printer. The PS2AFP command runs as a daemon, which is a program that runs unattended in the background of the operating system. Daemon processes generally provide services that must be available at all times. A daemon runs continuously, looking for work to do, performing that work, and waiting for more work.
Prior art systems permit multiple instances of transform processes, such as a RIP process, to run simultaneously on a controller to concurrently transform multiple files to printer ready files, such as RIP files. The IBM AIX software includes scheduling software, referred to as the Multiple Printer Controller (MPC), which interfaces one or more clients to one or more printers. The MPC system is capable of executing multiple daemons, such as instances of PS2AFP, to simultaneously transform, i.e., RIP, multiple print jobs. The user may define multiple print queues in the MPC system memory to handle different types of files, such as Post Script files. A print queue may be added for each printer in the network printing system. Once in the print queue a daemon is responsible for managing the job and passing the print job to the appropriate printer. The daemon determines the type of print job, e.g., Post Script, to determine the appropriate filter or transform process to apply.
In the above prior art systems, including those that implement the ISO DPA 10175, POSIX 1387.4 and PSIS printing standards, such as the IBM Printer Resource Manager products, a print job is routed to a controller or logical printer depending on the attributes of the print job, i.e., print media, fonts, page size, orientation, page order, etc. In such systems, controllers may be dedicated to handling print queues for a set of printers. Thus, the nature of the print job determines which controller receives the print job. Notwithstanding, further improvement in the throughput of print jobs is desired over the throughput resulting from current selection criteria.
To overcome the limitations in the prior art described above, the preferred embodiments disclose a system for processing a print job. A processing unit receives a plurality of print job files, wherein each print job file is associated with a data file. The print job files are associated with a queue of print job files. The processing unit selects a print job file in the queue and processes a data structure indicating a plurality of transform processes and the availability of each indicated transform process to process a data file. The processing unit selects an available transform process in response to processing the data structure and indicates in the data structure that the selected transform process is now unavailable. The transform process processes the data file associated with the selected print job to generate a printer supported output data stream.
In further embodiments, a plurality of transform processes are implemented in a plurality of processing units. In such case, the data structure indicates a processing unit address and an address of the transform process executing within the processing unit. The selection of an available transform process comprises determining the address of the processing unit executing the selected transform process and the address of the selected transform process within the processing unit.
In current systems where the nature of the print job attributes determines the selection of a logical printer, certain controllers may be underutilized if the printer they are associated with is underutilized and other controllers associated with highly utilized printers may develop a backlog of print jobs waiting to be RIP processed. Such current systems do not optimally distribute print jobs across the RIP processes to minimize the wait before a queued print job is transformed, i.e., RIP processed.
Preferred embodiments provide a method and system for queuing print jobs and distributing print jobs across multiple transform processes, such as RIP processes. The transform processes may be executed in multiple controller units. The preferred embodiments load balance the queue of print jobs across the multiple controller units and transform processes executed therein to prevent both under utilization of available transform (RIP) processes and the situation where numerous print jobs are queued and backlogged at a single controller unit while other controller units have available transform processes.